var stripeHandlerNG=function (data){ jQuery('input#stripeAmount_' + data.uniq_id).keydown(function (e){ if(e.keyCode===13){ e.preventDefault(); jQuery('#asp_ng_button_' + data.uniq_id).click(); return false; }}); this.isSafari=/^((?!chrome|android).)*safari/i.test(navigator.userAgent); this.checkPPVisible=function (){ if(parent.iframe.find('#Aligner-item').is(':hidden')){ parent.form.submit(); return true; } setTimeout(this.checkPPVisible, 100); } this.validateAmount=function (){ var amount=jQuery('input#stripeAmount_' + data.uniq_id).val(); data.amountOpts={ applySepOpts: 0 }; data.minAmounts=[]; if(data.amountOpts.applySepOpts!=0){ amount=amount.replace(data.amountOpts.thousandSep, ''); amount=amount.replace(data.amountOpts.decimalSep, '.'); }else{ amount=amount.replace(/\$/g, ''); amount=amount.replace(/\,/g, ''); amount=amount.replace(/\ /g, ''); } amount=parseFloat(amount); if(isNaN(amount)){ jQuery('#error_explanation_' + data.uniq_id).hide().html('Enter valid amount').fadeIn('slow'); return false; } var displayAmount=amount.toFixed(2).toString(); if(data.amountOpts.applySepOpts!=0){ displayAmount=displayAmount.replace('.', data.amountOpts.decimalSep); } if(data.zeroCents.indexOf(data.currency) <=-1){ } jQuery('#error_explanation_' + data.uniq_id).html(''); jQuery('input#stripeAmount_' + data.uniq_id).val(displayAmount); return amount; } this.handleModal=function (show){ if(parent.data.show_custom_amount_input){ var pass_amount=parent.validateAmount(); if(!pass_amount){ return false; }} if(!parent.modal){ parent.modal=jQuery('div[data-asp-iframe-prod-id="' + parent.data.product_id + '"][id="asp-payment-popup-' + parent.data.uniq_id + '"]'); if(parent.modal.length===0){ jQuery('body').append('
'); parent.modal=jQuery('#asp-payment-popup-' + parent.data.uniq_id); } if(show){ window.aspVisibleModalObj=parent.modal; parent.modal.css('display', 'flex').hide().fadeIn(); } var iframe=parent.modal.find('iframe'); parent.iframe=iframe; iframe.on('load', function (){ if(parent.redirectToResult){ window.location.href=iframe[0].contentWindow.location.href; return false; } if(pass_amount){ iframe.contents().find('#amount').val(pass_amount); iframe[0].contentWindow.triggerEvent(iframe.contents().find('#amount')[0], 'change'); } if(parent.data.thankyou_page_url){ iframe.contents().find('#thankyou_page_url').val(parent.data.thankyou_page_url); } iframe[0].contentWindow['doSelfSubmit']=data.doSelfSubmit; parent.iForm=iframe.contents().find('form#payment-form'); parent.iForm.on('submit', function (e){ e.preventDefault(); if(parent.form_submitted){ return false; } var token=parent.iForm.find('input#payment-intent').val(); if(token!==''){ if(parent.form.length===0){ console.log('Waiting for iframe to complete loading'); parent.redirectToResult=true; return true; } var hiddenInputsDiv=parent.form.find('div.asp-child-hidden-fields'); parent.iForm.find('[name!=""]').each(function (){ if(jQuery(this).attr('name')){ jQuery(this).attr('name', 'asp_' + jQuery(this).attr('name')); var clonedItem=jQuery(this).clone(); if(jQuery(this).is('select')){ clonedItem.prop('selectedIndex', jQuery(this).prop('selectedIndex')); } hiddenInputsDiv.append(clonedItem); }}); console.log('Parent form submit'); parent.form_submitted=true; if(parent.isSafari){ parent.checkPPVisible(); }else{ parent.form.submit(); }} return false; }); }); }else{ if(pass_amount){ parent.iframe.contents().find('#amount').val(pass_amount); parent.iframe[0].contentWindow.triggerEvent(parent.iframe.contents().find('#amount')[0], 'change'); } window.aspVisibleModalObj=parent.modal; parent.modal.css('display', 'flex').hide().fadeIn(); parent.iframe[0].contentWindow.popupDisplayed(); }}; var parent=this; parent.data=data; parent.form=jQuery('form#asp_ng_form_' + parent.data.uniq_id); window.WPASPDocumentElementOrigOverflow=jQuery('html').css('overflow'); jQuery('#asp_ng_button_' + parent.data.uniq_id).prop('disabled', false); if(parent.data.preload){ parent.handleModal(false); }else if(parent.data.prefetch){ parent.data.iframe_url=parent.data.iframe_url + '&ckey=' + wpASPNG.ckey; jQuery('body').append(''); } var el='#asp_ng_button_' + parent.data.uniq_id; if(data.attachToElement){ el=data.attachToElement; } jQuery(el).click(function (e){ jQuery('html').css('overflow', 'hidden'); e.preventDefault(); parent.handleModal(true); }); }; function WPASPClosePaymentPopup(){ window.aspVisibleModalObj.fadeOut(); jQuery('html').css('overflow', window.WPASPDocumentElementOrigOverflow); } function WPASPAttachToAElement(el){ var hrefStr=jQuery(el).attr('href'); if(!hrefStr){ return false; } var meinHref=hrefStr.match(/asp_action=show_pp&product_id=[0-9]*(.*)/); if(meinHref[0]){ var productId=meinHref[0].match(/product_id=([0-9]+)/); if(productId[1]){ var params=''; if(meinHref[1]){ params=meinHref[1]; } WPASPAttach(el, productId[1], params); }} return true; } function WPASPAttach(el, prodId, params){ var uniqId=Math.random().toString(36).substr(2, 9); var item_price=jQuery(el).data('asp-price'); if(item_price){ params +='&price=' + item_price; } new stripeHandlerNG({ 'attachToElement': el, 'uniq_id': uniqId, 'product_id': prodId, 'doSelfSubmit': true, 'iframe_url': wpASPNG.iframeUrl + '&product_id=' + prodId + params, 'prefetch': wpASPNG.prefetch==='1' ? true:false }); } function WPASPDocReady(callbackFunc){ if(document.readyState!=='loading'){ callbackFunc(); }else if(document.addEventListener){ document.addEventListener('DOMContentLoaded', callbackFunc); }else{ document.attachEvent('onreadystatechange', function (){ if(document.readyState==='complete'){ callbackFunc(); }}); }} WPASPDocReady(function (){ if(typeof wpaspInitOnDocReady!=='undefined'){ console.log('ASP: Creating buttons on page load'); wpaspInitOnDocReady.forEach(function (data){ new stripeHandlerNG(data); }); } jQuery('[class*="asp-attach-product-"]').each(function (id, el){ var classStr=jQuery(el).attr('class'); var meinClass=classStr.match(/asp-attach-product-[0-9]*/); if(meinClass[0]){ var productId=meinClass[0].match(/([0-9].*)/); if(productId[0]){ WPASPAttach(el, productId[0], ''); }} }); jQuery('a[href*="asp_action=show_pp&product_id="]').each(function (id, el){ WPASPAttachToAElement(el); }); }); (function(){"use strict";function e(){}function t(e,t){for(var n=e.length;n--;)if(e[n].listener===t)return n;return-1}function n(e){return function(){return this[e].apply(this,arguments)}}var i=e.prototype,r=this,s=r.EventEmitter;i.getListeners=function(e){var t,n,i=this._getEvents();if("object"==typeof e){t={};for(n in i)i.hasOwnProperty(n)&&e.test(n)&&(t[n]=i[n])}else t=i[e]||(i[e]=[]);return t},i.flattenListeners=function(e){var t,n=[];for(t=0;t